/*
 * Copyright (c) United Binary LLC.  All rights reserved.
 * 
 * This code is licensed under the MIT License
 * 
 * SEE: http://harnessit.codeplex.com/license
 * 
 */
using System;
using System.ComponentModel;

namespace UnitedBinary.UnitTests.Framework
{
	/// <include file='comments.xml' path='Docs/TestExecutionModes/Class/*'/>
	[Serializable]
	public enum TestExecutionModes
	{
		/// <include file='comments.xml' path='Docs/TestExecutionModes/Renew/*'/>
		Renew,
		/// <include file='comments.xml' path='Docs/TestExecutionModes/Reuse/*'/>
		Reuse
	};

	/// <include file='comments.xml' path='Docs/TestExecutionModeAttribute/Class/*'/>
	[Serializable]
	[AttributeUsage(AttributeTargets.Class)]
	public sealed class TestExecutionModeAttribute : System.Attribute
	{
		private TestExecutionModes mode = TestExecutionModes.Renew;

		/// <include file='comments.xml' path='Docs/TestExecutionModeAttribute/ctor_TestExecutionModes/*'/>
		public TestExecutionModeAttribute(TestExecutionModes mode) 
		{
			this.mode = mode;
		}

		/// <include file='comments.xml' path='Docs/TestExecutionModeAttribute/Mode/*'/>
		[EditorBrowsable(EditorBrowsableState.Never)]
		public TestExecutionModes Mode
		{
			get
			{
				return mode;
			}
		}
	}
}
